1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.purple.blist;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.ghash;
34 import derelict.glib.gslist;
35 import derelict.glib.glist;
36 import derelict.purple.buddyicon;
37 import derelict.purple.account;
38 import derelict.purple.status;
39 import derelict.purple.enum_types;
40 
41 extern (C):
42 
43 alias _PurpleBuddyList PurpleBuddyList;
44 alias _PurpleBlistUiOps PurpleBlistUiOps;
45 alias _PurpleBlistNode PurpleBlistNode;
46 alias _PurpleChat PurpleChat;
47 alias _PurpleGroup PurpleGroup;
48 alias _PurpleContact PurpleContact;
49 alias _PurpleBuddy PurpleBuddy;
50 alias _Anonymous_0 PurpleBlistNodeType;
51 alias _Anonymous_1 PurpleBlistNodeFlags;
52 
53 enum _Anonymous_0
54 {
55 	PURPLE_BLIST_GROUP_NODE = 0,
56 	PURPLE_BLIST_CONTACT_NODE = 1,
57 	PURPLE_BLIST_BUDDY_NODE = 2,
58 	PURPLE_BLIST_CHAT_NODE = 3,
59 	PURPLE_BLIST_OTHER_NODE = 4
60 }
61 
62 enum _Anonymous_1
63 {
64 	PURPLE_BLIST_NODE_FLAG_NO_SAVE = 1
65 }
66 
67 struct _PurpleBlistNode
68 {
69 	PurpleBlistNodeType type;
70 	PurpleBlistNode* prev;
71 	PurpleBlistNode* next;
72 	PurpleBlistNode* parent;
73 	PurpleBlistNode* child;
74 	GHashTable* settings;
75 	void* ui_data;
76 	PurpleBlistNodeFlags flags;
77 }
78 
79 struct _PurpleBuddy
80 {
81 	PurpleBlistNode node;
82 	char* name;
83 	char* alias_;
84 	char* server_alias;
85 	void* proto_data;
86 	PurpleBuddyIcon* icon;
87 	PurpleAccount* account;
88 	PurplePresence* presence;
89 	PurpleMediaCaps media_caps;
90 }
91 
92 struct _PurpleContact
93 {
94 	PurpleBlistNode node;
95 	char* alias_;
96 	int totalsize;
97 	int currentsize;
98 	int online;
99 	PurpleBuddy* priority;
100 	gboolean priority_valid;
101 }
102 
103 struct _PurpleGroup
104 {
105 	PurpleBlistNode node;
106 	char* name;
107 	int totalsize;
108 	int currentsize;
109 	int online;
110 }
111 
112 struct _PurpleChat
113 {
114 	PurpleBlistNode node;
115 	char* alias_;
116 	GHashTable* components;
117 	PurpleAccount* account;
118 }
119 
120 struct _PurpleBuddyList
121 {
122 	PurpleBlistNode* root;
123 	GHashTable* buddies;
124 	void* ui_data;
125 }
126 
127 struct _PurpleBlistUiOps
128 {
129 	void function (PurpleBuddyList*) new_list;
130 	void function (PurpleBlistNode*) new_node;
131 	void function (PurpleBuddyList*) show;
132 	void function (PurpleBuddyList*, PurpleBlistNode*) update;
133 	void function (PurpleBuddyList*, PurpleBlistNode*) remove;
134 	void function (PurpleBuddyList*) destroy;
135 	void function (PurpleBuddyList*, gboolean) set_visible;
136 	void function (PurpleAccount*, const(char)*, const(char)*, const(char)*) request_add_buddy;
137 	void function (PurpleAccount*, PurpleGroup*, const(char)*, const(char)*) request_add_chat;
138 	void function () request_add_group;
139 	void function (PurpleBlistNode*) save_node;
140 	void function (PurpleBlistNode*) remove_node;
141 	void function (PurpleAccount*) save_account;
142 	void function () _purple_reserved1;
143 }
144 
145 version(Derelict_Link_Static)
146 {
147     extern( C ) nothrow 
148     {
149         PurpleBuddyList* purple_blist_new();
150         void purple_set_blist(PurpleBuddyList* blist);
151         PurpleBuddyList* purple_get_blist();
152         PurpleBlistNode* purple_blist_get_root();
153         GSList* purple_blist_get_buddies();
154         gpointer purple_blist_get_ui_data();
155         void purple_blist_set_ui_data(gpointer ui_data);
156         PurpleBlistNode* purple_blist_node_next(PurpleBlistNode* node, gboolean offline);
157         PurpleBlistNode* purple_blist_node_get_parent(PurpleBlistNode* node);
158         PurpleBlistNode* purple_blist_node_get_first_child(PurpleBlistNode* node);
159         PurpleBlistNode* purple_blist_node_get_sibling_next(PurpleBlistNode* node);
160         PurpleBlistNode* purple_blist_node_get_sibling_prev(PurpleBlistNode* node);
161         gpointer purple_blist_node_get_ui_data(const(PurpleBlistNode)* node);
162         void purple_blist_node_set_ui_data(PurpleBlistNode* node, gpointer ui_data);
163         void purple_blist_show();
164         void purple_blist_destroy();
165         void purple_blist_set_visible(gboolean show);
166         void purple_blist_update_buddy_status(PurpleBuddy* buddy, PurpleStatus* old_status);
167         void purple_blist_update_node_icon(PurpleBlistNode* node);
168         void purple_blist_update_buddy_icon(PurpleBuddy* buddy);
169         void purple_blist_rename_buddy(PurpleBuddy* buddy, const(char)* name);
170         void purple_blist_alias_contact(PurpleContact* contact, const(char)* alias_);
171         void purple_blist_alias_buddy(PurpleBuddy* buddy, const(char)* alias_);
172         void purple_blist_server_alias_buddy(PurpleBuddy* buddy, const(char)* alias_);
173         void purple_blist_alias_chat(PurpleChat* chat, const(char)* alias_);
174         void purple_blist_rename_group(PurpleGroup* group, const(char)* name);
175         PurpleChat* purple_chat_new(PurpleAccount* account, const(char)* alias_, GHashTable* components);
176         void purple_chat_destroy(PurpleChat* chat);
177         void purple_blist_add_chat(PurpleChat* chat, PurpleGroup* group, PurpleBlistNode* node);
178         PurpleBuddy* purple_buddy_new(PurpleAccount* account, const(char)* name, const(char)* alias_);
179         void purple_buddy_destroy(PurpleBuddy* buddy);
180         void purple_buddy_set_icon(PurpleBuddy* buddy, PurpleBuddyIcon* icon);
181         PurpleAccount* purple_buddy_get_account(const(PurpleBuddy)* buddy);
182         const(char)* purple_buddy_get_name(const(PurpleBuddy)* buddy);
183         PurpleBuddyIcon* purple_buddy_get_icon(const(PurpleBuddy)* buddy);
184         gpointer purple_buddy_get_protocol_data(const(PurpleBuddy)* buddy);
185         void purple_buddy_set_protocol_data(PurpleBuddy* buddy, gpointer data);
186         PurpleContact* purple_buddy_get_contact(PurpleBuddy* buddy);
187         PurplePresence* purple_buddy_get_presence(const(PurpleBuddy)* buddy);
188         PurpleMediaCaps purple_buddy_get_media_caps(const(PurpleBuddy)* buddy);
189         void purple_buddy_set_media_caps(PurpleBuddy* buddy, PurpleMediaCaps media_caps);
190         void purple_blist_add_buddy(PurpleBuddy* buddy, PurpleContact* contact, PurpleGroup* group, PurpleBlistNode* node);
191         PurpleGroup* purple_group_new(const(char)* name);
192         void purple_group_destroy(PurpleGroup* group);
193         void purple_blist_add_group(PurpleGroup* group, PurpleBlistNode* node);
194         PurpleContact* purple_contact_new();
195         void purple_contact_destroy(PurpleContact* contact);
196         PurpleGroup* purple_contact_get_group(const(PurpleContact)* contact);
197         void purple_blist_add_contact(PurpleContact* contact, PurpleGroup* group, PurpleBlistNode* node);
198         void purple_blist_merge_contact(PurpleContact* source, PurpleBlistNode* node);
199         PurpleBuddy* purple_contact_get_priority_buddy(PurpleContact* contact);
200         void purple_contact_set_alias(PurpleContact* contact, const(char)* alias_);
201         const(char)* purple_contact_get_alias(PurpleContact* contact);
202         gboolean purple_contact_on_account(PurpleContact* contact, PurpleAccount* account);
203         void purple_contact_invalidate_priority_buddy(PurpleContact* contact);
204         void purple_blist_remove_buddy(PurpleBuddy* buddy);
205         void purple_blist_remove_contact(PurpleContact* contact);
206         void purple_blist_remove_chat(PurpleChat* chat);
207         void purple_blist_remove_group(PurpleGroup* group);
208         const(char)* purple_buddy_get_alias_only(PurpleBuddy* buddy);
209         const(char)* purple_buddy_get_server_alias(PurpleBuddy* buddy);
210         const(char)* purple_buddy_get_contact_alias(PurpleBuddy* buddy);
211         const(char)* purple_buddy_get_local_alias(PurpleBuddy* buddy);
212         const(char)* purple_buddy_get_alias(PurpleBuddy* buddy);
213         const(char)* purple_buddy_get_local_buddy_alias(PurpleBuddy* buddy);
214         const(char)* purple_chat_get_name(PurpleChat* chat);
215         PurpleBuddy* purple_find_buddy(PurpleAccount* account, const(char)* name);
216         PurpleBuddy* purple_find_buddy_in_group(PurpleAccount* account, const(char)* name, PurpleGroup* group);
217         GSList* purple_find_buddies(PurpleAccount* account, const(char)* name);
218         PurpleGroup* purple_find_group(const(char)* name);
219         PurpleChat* purple_blist_find_chat(PurpleAccount* account, const(char)* name);
220         PurpleGroup* purple_chat_get_group(PurpleChat* chat);
221         PurpleAccount* purple_chat_get_account(PurpleChat* chat);
222         GHashTable* purple_chat_get_components(PurpleChat* chat);
223         PurpleGroup* purple_buddy_get_group(PurpleBuddy* buddy);
224         GSList* purple_group_get_accounts(PurpleGroup* g);
225         gboolean purple_group_on_account(PurpleGroup* g, PurpleAccount* account);
226         const(char)* purple_group_get_name(PurpleGroup* group);
227         void purple_blist_add_account(PurpleAccount* account);
228         void purple_blist_remove_account(PurpleAccount* account);
229         int purple_blist_get_group_size(PurpleGroup* group, gboolean offline);
230         int purple_blist_get_group_online_count(PurpleGroup* group);
231         void purple_blist_load();
232         void purple_blist_schedule_save();
233         void purple_blist_request_add_buddy(PurpleAccount* account, const(char)* username, const(char)* group, const(char)* alias_);
234         void purple_blist_request_add_chat(PurpleAccount* account, PurpleGroup* group, const(char)* alias_, const(char)* name);
235         void purple_blist_request_add_group();
236         void purple_blist_node_set_bool(PurpleBlistNode* node, const(char)* key, gboolean value);
237         gboolean purple_blist_node_get_bool(PurpleBlistNode* node, const(char)* key);
238         void purple_blist_node_set_int(PurpleBlistNode* node, const(char)* key, int value);
239         int purple_blist_node_get_int(PurpleBlistNode* node, const(char)* key);
240         void purple_blist_node_set_string(PurpleBlistNode* node, const(char)* key, const(char)* value);
241         const(char)* purple_blist_node_get_string(PurpleBlistNode* node, const(char)* key);
242         void purple_blist_node_remove_setting(PurpleBlistNode* node, const(char)* key);
243         void purple_blist_node_set_flags(PurpleBlistNode* node, PurpleBlistNodeFlags flags);
244         PurpleBlistNodeFlags purple_blist_node_get_flags(PurpleBlistNode* node);
245         PurpleBlistNodeType purple_blist_node_get_type(PurpleBlistNode* node);
246         GList* purple_blist_node_get_extended_menu(PurpleBlistNode* n);
247         void purple_blist_set_ui_ops(PurpleBlistUiOps* ops);
248         PurpleBlistUiOps* purple_blist_get_ui_ops();
249         void* purple_blist_get_handle();
250         void purple_blist_init();
251         void purple_blist_uninit();
252     }
253 }
254 else
255 {
256     extern( C ) nothrow 
257     {
258         alias da_purple_blist_new = PurpleBuddyList* function();																										
259         alias da_purple_set_blist = void function(PurpleBuddyList* blist);																								
260         alias da_purple_get_blist = PurpleBuddyList* function();																										
261         alias da_purple_blist_get_root = PurpleBlistNode* function();																									
262         alias da_purple_blist_get_buddies = GSList* function();																											
263         alias da_purple_blist_get_ui_data = gpointer function();																										
264         alias da_purple_blist_set_ui_data = void function(gpointer ui_data);																							
265         alias da_purple_blist_node_next = PurpleBlistNode* function(PurpleBlistNode* node, gboolean offline);															
266         alias da_purple_blist_node_get_parent = PurpleBlistNode* function(PurpleBlistNode* node);																		
267         alias da_purple_blist_node_get_first_child = PurpleBlistNode* function(PurpleBlistNode* node);																	
268         alias da_purple_blist_node_get_sibling_next = PurpleBlistNode* function(PurpleBlistNode* node);																	
269         alias da_purple_blist_node_get_sibling_prev = PurpleBlistNode* function(PurpleBlistNode* node);																	
270         alias da_purple_blist_node_get_ui_data = gpointer function(const(PurpleBlistNode)* node);																		
271         alias da_purple_blist_node_set_ui_data = void function(PurpleBlistNode* node, gpointer ui_data);																
272         alias da_purple_blist_show = void function();																													
273         alias da_purple_blist_destroy = void function();																												
274         alias da_purple_blist_set_visible = void function(gboolean show);																								
275         alias da_purple_blist_update_buddy_status = void function(PurpleBuddy* buddy, PurpleStatus* old_status);														
276         alias da_purple_blist_update_node_icon = void function(PurpleBlistNode* node);																					
277         alias da_purple_blist_update_buddy_icon = void function(PurpleBuddy* buddy);																					
278         alias da_purple_blist_rename_buddy = void function(PurpleBuddy* buddy, const(char)* name);																		
279         alias da_purple_blist_alias_contact = void function(PurpleContact* contact, const(char)* alias_);																
280         alias da_purple_blist_alias_buddy = void function(PurpleBuddy* buddy, const(char)* alias_);																		
281         alias da_purple_blist_server_alias_buddy = void function(PurpleBuddy* buddy, const(char)* alias_);																
282         alias da_purple_blist_alias_chat = void function(PurpleChat* chat, const(char)* alias_);																		
283         alias da_purple_blist_rename_group = void function(PurpleGroup* group, const(char)* name);																		
284         alias da_purple_chat_new = PurpleChat* function(PurpleAccount* account, const(char)* alias_, GHashTable* components);											
285         alias da_purple_chat_destroy = void function(PurpleChat* chat);																									
286         alias da_purple_blist_add_chat = void function(PurpleChat* chat, PurpleGroup* group, PurpleBlistNode* node);													
287         alias da_purple_buddy_new = PurpleBuddy* function(PurpleAccount* account, const(char)* name, const(char)* alias_);												
288         alias da_purple_buddy_destroy = void function(PurpleBuddy* buddy);																								
289         alias da_purple_buddy_set_icon = void function(PurpleBuddy* buddy, PurpleBuddyIcon* icon);																		
290         alias da_purple_buddy_get_account = PurpleAccount* function(const(PurpleBuddy)* buddy);																			
291         alias da_purple_buddy_get_name = const(char)* function(const(PurpleBuddy)* buddy);																				
292         alias da_purple_buddy_get_icon = PurpleBuddyIcon* function(const(PurpleBuddy)* buddy);																			
293         alias da_purple_buddy_get_protocol_data = gpointer function(const(PurpleBuddy)* buddy);																			
294         alias da_purple_buddy_set_protocol_data = void function(PurpleBuddy* buddy, gpointer data);																		
295         alias da_purple_buddy_get_contact = PurpleContact* function(PurpleBuddy* buddy);																				
296         alias da_purple_buddy_get_presence = PurplePresence* function(const(PurpleBuddy)* buddy);																		
297         alias da_purple_buddy_get_media_caps = PurpleMediaCaps function(const(PurpleBuddy)* buddy);																		
298         alias da_purple_buddy_set_media_caps = void function(PurpleBuddy* buddy, PurpleMediaCaps media_caps);															
299         alias da_purple_blist_add_buddy = void function(PurpleBuddy* buddy, PurpleContact* contact, PurpleGroup* group, PurpleBlistNode* node);							
300         alias da_purple_group_new = PurpleGroup* function(const(char)* name);																							
301         alias da_purple_group_destroy = void function(PurpleGroup* group);																								
302         alias da_purple_blist_add_group = void function(PurpleGroup* group, PurpleBlistNode* node);																		
303         alias da_purple_contact_new = PurpleContact* function();																										
304         alias da_purple_contact_destroy = void function(PurpleContact* contact);																						
305         alias da_purple_contact_get_group = PurpleGroup* function(const(PurpleContact)* contact);																		
306         alias da_purple_blist_add_contact = void function(PurpleContact* contact, PurpleGroup* group, PurpleBlistNode* node);											
307         alias da_purple_blist_merge_contact = void function(PurpleContact* source, PurpleBlistNode* node);																
308         alias da_purple_contact_get_priority_buddy = PurpleBuddy* function(PurpleContact* contact);																		
309         alias da_purple_contact_set_alias = void function(PurpleContact* contact, const(char)* alias_);																	
310         alias da_purple_contact_get_alias = const(char)* function(PurpleContact* contact);																				
311         alias da_purple_contact_on_account = gboolean function(PurpleContact* contact, PurpleAccount* account);															
312         alias da_purple_contact_invalidate_priority_buddy = void function(PurpleContact* contact);																		
313         alias da_purple_blist_remove_buddy = void function(PurpleBuddy* buddy);																							
314         alias da_purple_blist_remove_contact = void function(PurpleContact* contact);																					
315         alias da_purple_blist_remove_chat = void function(PurpleChat* chat);																							
316         alias da_purple_blist_remove_group = void function(PurpleGroup* group);																							
317         alias da_purple_buddy_get_alias_only = const(char)* function(PurpleBuddy* buddy);																				
318         alias da_purple_buddy_get_server_alias = const(char)* function(PurpleBuddy* buddy);																				
319         alias da_purple_buddy_get_contact_alias = const(char)* function(PurpleBuddy* buddy);																			
320         alias da_purple_buddy_get_local_alias = const(char)* function(PurpleBuddy* buddy);																				
321         alias da_purple_buddy_get_alias = const(char)* function(PurpleBuddy* buddy);																					
322         alias da_purple_buddy_get_local_buddy_alias = const(char)* function(PurpleBuddy* buddy);																		
323         alias da_purple_chat_get_name = const(char)* function(PurpleChat* chat);																						
324         alias da_purple_find_buddy = PurpleBuddy* function(PurpleAccount* account, const(char)* name);																	
325         alias da_purple_find_buddy_in_group = PurpleBuddy* function(PurpleAccount* account, const(char)* name, PurpleGroup* group);										
326         alias da_purple_find_buddies = GSList* function(PurpleAccount* account, const(char)* name);																		
327         alias da_purple_find_group = PurpleGroup* function(const(char)* name);																							
328         alias da_purple_blist_find_chat = PurpleChat* function(PurpleAccount* account, const(char)* name);																
329         alias da_purple_chat_get_group = PurpleGroup* function(PurpleChat* chat);																						
330         alias da_purple_chat_get_account = PurpleAccount* function(PurpleChat* chat);																					
331         alias da_purple_chat_get_components = GHashTable* function(PurpleChat* chat);																					
332         alias da_purple_buddy_get_group = PurpleGroup* function(PurpleBuddy* buddy);																					
333         alias da_purple_group_get_accounts = GSList* function(PurpleGroup* g);																							
334         alias da_purple_group_on_account = gboolean function(PurpleGroup* g, PurpleAccount* account);																	
335         alias da_purple_group_get_name = const(char)* function(PurpleGroup* group);																						
336         alias da_purple_blist_add_account = void function(PurpleAccount* account);																						
337         alias da_purple_blist_remove_account = void function(PurpleAccount* account);																					
338         alias da_purple_blist_get_group_size = int function(PurpleGroup* group, gboolean offline);																		
339         alias da_purple_blist_get_group_online_count = int function(PurpleGroup* group);			
340         alias da_purple_blist_load = void function();																													
341         alias da_purple_blist_schedule_save = void function();																											
342         alias da_purple_blist_request_add_buddy = void function(PurpleAccount* account, const(char)* username, const(char)* group, const(char)* alias_);				
343         alias da_purple_blist_request_add_chat = void function(PurpleAccount* account, PurpleGroup* group, const(char)* alias_, const(char)* name);						
344         alias da_purple_blist_request_add_group = void function();																										
345         alias da_purple_blist_node_set_bool = void function(PurpleBlistNode* node, const(char)* key, gboolean value);													
346         alias da_purple_blist_node_get_bool = gboolean function(PurpleBlistNode* node, const(char)* key);																
347         alias da_purple_blist_node_set_int = void function(PurpleBlistNode* node, const(char)* key, int value);															
348         alias da_purple_blist_node_get_int = int function(PurpleBlistNode* node, const(char)* key);																		
349         alias da_purple_blist_node_set_string = void function(PurpleBlistNode* node, const(char)* key, const(char)* value);												
350         alias da_purple_blist_node_get_string = const(char)* function(PurpleBlistNode* node, const(char)* key);															
351         alias da_purple_blist_node_remove_setting = void function(PurpleBlistNode* node, const(char)* key);																
352         alias da_purple_blist_node_set_flags = void function(PurpleBlistNode* node, PurpleBlistNodeFlags flags);														
353         alias da_purple_blist_node_get_flags = PurpleBlistNodeFlags function(PurpleBlistNode* node);																	
354         alias da_purple_blist_node_get_type = PurpleBlistNodeType function(PurpleBlistNode* node);																		
355         alias da_purple_blist_node_get_extended_menu = GList* function(PurpleBlistNode* n);																				
356         alias da_purple_blist_set_ui_ops = void function(PurpleBlistUiOps* ops);																						
357         alias da_purple_blist_get_ui_ops = PurpleBlistUiOps* function();																								
358         alias da_purple_blist_get_handle = void* function();																											
359         alias da_purple_blist_init = void function();																													
360         alias da_purple_blist_uninit = void function();			
361     }
362 
363     __gshared
364     {
365 	    da_purple_blist_new purple_blist_new;
366 	    da_purple_set_blist purple_set_blist;
367 	    da_purple_get_blist purple_get_blist;
368 	    da_purple_blist_get_root purple_blist_get_root;
369 	    da_purple_blist_get_buddies purple_blist_get_buddies;
370 	    da_purple_blist_get_ui_data purple_blist_get_ui_data;
371 	    da_purple_blist_set_ui_data purple_blist_set_ui_data;
372 	    da_purple_blist_node_next purple_blist_node_next;
373 	    da_purple_blist_node_get_parent purple_blist_node_get_parent;
374 	    da_purple_blist_node_get_first_child purple_blist_node_get_first_child;
375 	    da_purple_blist_node_get_sibling_next purple_blist_node_get_sibling_next;
376 	    da_purple_blist_node_get_sibling_prev purple_blist_node_get_sibling_prev;
377 	    da_purple_blist_node_get_ui_data purple_blist_node_get_ui_data;
378 	    da_purple_blist_node_set_ui_data purple_blist_node_set_ui_data;
379 	    da_purple_blist_show purple_blist_show;
380 	    da_purple_blist_destroy purple_blist_destroy;
381 	    da_purple_blist_set_visible purple_blist_set_visible;
382 	    da_purple_blist_update_buddy_status purple_blist_update_buddy_status;
383 	    da_purple_blist_update_node_icon purple_blist_update_node_icon;
384 	    da_purple_blist_update_buddy_icon purple_blist_update_buddy_icon;
385 	    da_purple_blist_rename_buddy purple_blist_rename_buddy;
386 	    da_purple_blist_alias_contact purple_blist_alias_contact;
387 	    da_purple_blist_alias_buddy purple_blist_alias_buddy;
388 	    da_purple_blist_server_alias_buddy purple_blist_server_alias_buddy;
389 	    da_purple_blist_alias_chat purple_blist_alias_chat;
390 	    da_purple_blist_rename_group purple_blist_rename_group;
391 	    da_purple_chat_new purple_chat_new;
392 	    da_purple_chat_destroy purple_chat_destroy;
393 	    da_purple_blist_add_chat purple_blist_add_chat;
394 	    da_purple_buddy_new purple_buddy_new;
395 	    da_purple_buddy_destroy purple_buddy_destroy;
396 	    da_purple_buddy_set_icon purple_buddy_set_icon;
397 	    da_purple_buddy_get_account purple_buddy_get_account;
398 	    da_purple_buddy_get_name purple_buddy_get_name;
399 	    da_purple_buddy_get_icon purple_buddy_get_icon;
400 	    da_purple_buddy_get_protocol_data purple_buddy_get_protocol_data;
401 	    da_purple_buddy_set_protocol_data purple_buddy_set_protocol_data;
402 	    da_purple_buddy_get_contact purple_buddy_get_contact;
403 	    da_purple_buddy_get_presence purple_buddy_get_presence;
404 	    da_purple_buddy_get_media_caps purple_buddy_get_media_caps;
405 	    da_purple_buddy_set_media_caps purple_buddy_set_media_caps;
406 	    da_purple_blist_add_buddy purple_blist_add_buddy;
407 	    da_purple_group_new purple_group_new;
408 	    da_purple_group_destroy purple_group_destroy;
409 	    da_purple_blist_add_group purple_blist_add_group;
410 	    da_purple_contact_new purple_contact_new;
411 	    da_purple_contact_destroy purple_contact_destroy;
412 	    da_purple_contact_get_group purple_contact_get_group;
413 	    da_purple_blist_add_contact purple_blist_add_contact;
414 	    da_purple_blist_merge_contact purple_blist_merge_contact;
415 	    da_purple_contact_get_priority_buddy purple_contact_get_priority_buddy;
416 	    da_purple_contact_set_alias purple_contact_set_alias;
417 	    da_purple_contact_get_alias purple_contact_get_alias;
418 	    da_purple_contact_on_account purple_contact_on_account;
419 	    da_purple_contact_invalidate_priority_buddy purple_contact_invalidate_priority_buddy;
420 	    da_purple_blist_remove_buddy purple_blist_remove_buddy;
421 	    da_purple_blist_remove_contact purple_blist_remove_contact;
422 	    da_purple_blist_remove_chat purple_blist_remove_chat;
423 	    da_purple_blist_remove_group purple_blist_remove_group;
424 	    da_purple_buddy_get_alias_only purple_buddy_get_alias_only;
425 	    da_purple_buddy_get_server_alias purple_buddy_get_server_alias;
426 	    da_purple_buddy_get_contact_alias purple_buddy_get_contact_alias;
427 	    da_purple_buddy_get_local_alias purple_buddy_get_local_alias;
428 	    da_purple_buddy_get_alias purple_buddy_get_alias;
429 	    da_purple_buddy_get_local_buddy_alias purple_buddy_get_local_buddy_alias;
430 	    da_purple_chat_get_name purple_chat_get_name;
431 	    da_purple_find_buddy purple_find_buddy;
432 	    da_purple_find_buddy_in_group purple_find_buddy_in_group;
433 	    da_purple_find_buddies purple_find_buddies;
434 	    da_purple_find_group purple_find_group;
435 	    da_purple_blist_find_chat purple_blist_find_chat;
436 	    da_purple_chat_get_group purple_chat_get_group;
437 	    da_purple_chat_get_account purple_chat_get_account;
438 	    da_purple_chat_get_components purple_chat_get_components;
439 	    da_purple_buddy_get_group purple_buddy_get_group;
440 	    da_purple_group_get_accounts purple_group_get_accounts;
441 	    da_purple_group_on_account purple_group_on_account;
442 	    da_purple_group_get_name purple_group_get_name;
443 	    da_purple_blist_add_account purple_blist_add_account;
444 	    da_purple_blist_remove_account purple_blist_remove_account;
445 	    da_purple_blist_get_group_size purple_blist_get_group_size;
446 	    da_purple_blist_get_group_online_count purple_blist_get_group_online_count;
447 	    da_purple_blist_load purple_blist_load;
448 	    da_purple_blist_schedule_save purple_blist_schedule_save;
449 	    da_purple_blist_request_add_buddy purple_blist_request_add_buddy;
450 	    da_purple_blist_request_add_chat purple_blist_request_add_chat;
451 	    da_purple_blist_request_add_group purple_blist_request_add_group;
452 	    da_purple_blist_node_set_bool purple_blist_node_set_bool;
453 	    da_purple_blist_node_get_bool purple_blist_node_get_bool;
454 	    da_purple_blist_node_set_int purple_blist_node_set_int;
455 	    da_purple_blist_node_get_int purple_blist_node_get_int;
456 	    da_purple_blist_node_set_string purple_blist_node_set_string;
457 	    da_purple_blist_node_get_string purple_blist_node_get_string;
458 	    da_purple_blist_node_remove_setting purple_blist_node_remove_setting;
459 	    da_purple_blist_node_set_flags purple_blist_node_set_flags;
460 	    da_purple_blist_node_get_flags purple_blist_node_get_flags;
461 	    da_purple_blist_node_get_type purple_blist_node_get_type;
462 	    da_purple_blist_node_get_extended_menu purple_blist_node_get_extended_menu;
463 	    da_purple_blist_set_ui_ops purple_blist_set_ui_ops;
464 	    da_purple_blist_get_ui_ops purple_blist_get_ui_ops;
465 	    da_purple_blist_get_handle purple_blist_get_handle;
466 	    da_purple_blist_init purple_blist_init;
467 	    da_purple_blist_uninit purple_blist_uninit;
468     }
469 }